<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>循环引用问题</title>
</head>
<body>

</body>
<script>
    // JSON 不支持循环引用。如果对象中存在循环引用，序列化时会导致错误：TypeError: Converting circular structure to JSON。

    // 例子：
    // 定义一个包含循环引用的对象
    const person = {
        name: "Alice",
        age: 30
    }

    const company = {
        name: "Tech Corp",
        employee: person
    };

    // 创建循环引用
    person.company = company;
    console.log("Original person object:", person);
    console.log("Original company object:", company);

    // 在这个示例中，person 对象引用了 company 对象，而 company 对象又引用了 person 对象，从而形成了循环引用。

    // 尝试使用 JSON 序列化和反序列化
    try {
        const jsonString = JSON.stringify(person);
        const copiedPerson = JSON.parse(jsonString);
        console.log("Copied person object:", copiedPerson);
    } catch (error) {
        console.error("Error during JSON serialization:", error.message);
    }

    // 说明
    // 循环引用：person 对象和 company 对象之间存在循环引用。
    // 错误捕获：尝试使用 JSON.stringify 序列化包含循环引用的对象时，会抛出 TypeError，并显示错误信息。
</script>
</html>